﻿#region License statement
// NJamb, a specification and delta-specification DSL
// Copyright (c) 2010-2011, Mark Knell
// Published under the MIT License; all other rights reserved
#endregion

#region using...
using System;
using NJamb.Specifications;
using Stile.Patterns.SelfDescribingPredicates;
#endregion

namespace NJamb.Parser.SpecificationBuilders
{
    public interface ICollaboratingSpecificationBuilder<TSubject, out TSpecifies>
        where TSpecifies : class, ISpecification
    {
        TSpecifies Specify(ISelfDescribingPredicate<TSubject> selfDescribingPredicate,
            Func<Exception, TSubject, IEvaluation<TSubject>> exceptionFilter = null);
    }
}
